package org.jeecg.modules.wmhb.service;

import org.jeecg.modules.wmhb.entity.WmFlowDept;
import org.jeecg.modules.wmhb.entity.WmTask;
import org.jeecg.modules.wmhb.entity.WmTaskFlow;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @Description: 任务流程时间
 * @Author: jeecg-boot
 * @Date:   2024-09-13
 * @Version: V1.0
 */
public interface IWmTaskFlowService extends IService<WmTaskFlow> {
    public void saveTaskFlow(List<WmFlowDept> wmFlowDeptList, WmTask wmTask);

    /**
     * 通过任务和部门获取任务流程
     * @param wmTaskId
     * @param orderNum
     * @return
     */
    public WmTaskFlow getTaskFlowByTaskAndOrder(String wmTaskId, Integer orderNum);

    /**
     * 批量更改第一个流程节点的任务流程的实际开始时间
     */
    public void updateFactBeginTimeByStep(List<WmTask> wmTaskList, Integer orderNum);

    /**
     * 批量更改最后一个流程节点的任务流程的实际开始时间
     */
    public void updateFactEndTimeByStep(List<WmTask> wmTaskList, Integer orderNum);

    /**
     * 根据任务ID和部门ID查询数据
     */
    public WmTaskFlow getByTaskAndDepart(String wmTaskId, String departId, Integer orderNum);

    /**
     * 通过任务ID查询任务流程列表
     */
    public List<WmTaskFlow> queryByTaskId(String wmTaskId);

    /**
     * 查询指定任务指定索引的任务流程信息
     */
    public WmTaskFlow getByTaskAndIndex(String wmTaskId, Integer orderNum);
}
